#!/usr/bin/env bash

####on vérifie que 3 parametres au moins sont passés en argument
if [ $# -lt 3 ];then
	echo -e "\n ERROR : scriptIBD.sh <filename> <IBD training sample file> <mapFile>\n" 1>&2
	exit 1
fi

nb=$RANDOM
filename=$1 #récupération du 1er parametre
cut -d" " -f1 $filename.fam  | sort | uniq > ped_$nb # récupération de la liste des familles

dataname=`basename $filename`

#### création des répertoires ped 12 et outplink s'ils n'existent pas déjà
if [ ! -d ped12 ];then
	mkdir ped12
fi
if [ ! -d outplink ];then
	mkdir outplink
fi
if [ ! -d forIdcoeff ];then
	mkdir forIdcoeff
fi
if [ ! -d newtfile ];then
	mkdir newtfile
fi
if [ -e $dataname"_new.ped" ];then
	rm $dataname"_new.ped"
fi
if [ -e ibdldreskin_$dataname ];then
	rm ibdldreskin_$dataname
fi

#### pour chaque famille du ".fam" de départ
while read line;do
	
	# récupération des colonnes ped et ind correspondant à la famille 
	grep $line $filename.fam | cut -d" " -f1,2 > ped12/$line.ped12 
	
	# création des fichiers d'entrée pour le script1.r
	plink --noweb --bfile $filename --keep ped12/$line.ped12 --make-bed --out outplink/$line
	plink --noweb --bfile outplink/$line --transpose --recode --out outplink/$line
	
	echo -e "\n########### CREATE FILES FOR idcoeff : $line #############\n"
	Rscript script1.r outplink/$line.tfam

	echo -e "\n############# SETTING UP idcoeff : $line ###############\n"
	# Lancement de idcoeffD
	./idcoefs -p forIdcoeff/pedcoef_$line.p -s forIdcoeff/pedcoef_$line.s -o reskin_$line

	# modification des fichiers de sortie de idcoeff
	perl modif_idcoefoutput.pl $line reskin_$line forIdcoeff/corresp_$line.txt

	echo -e "\n########### CREATE FILES FOR IBDLD : $line #############\n"
	Rscript script2.r outplink/$line.tped outplink/$line.tfam forIdcoeff/orderped_$line".p" $line
	perl create_newtfam.pl $line forIdcoeff/orderped_$line.p outplink/$line.fam
	plink --noweb --tfile newtfile/$line"_new" --recode --out $line"_tmpnew"$nb

	# concaténation des données
	cut -d" " -f1-5,7- $line"_tmpnew"$nb".ped" >> $dataname"_new.ped"
	cat ibdldreskin_$line >> ibdldreskin_$dataname

done < ped_$nb

	echo -e "\n############# SETTING UP IBDLD : $line ###############\n"
	./IBDLD -o $dataname -p $dataname"_new.ped" -m $3 -i ibdldreskin_$dataname -method LD-RR -ploci 10  -ibd 3 -hbd -unphased $2  #$2 Training Sample File, $3 map file

rm ped_$nb
rm *_tmpnew$nb

# example de commande ./scriptIBD3.sh datas/brugada7 datas/nvtsfdesir.txt datas/brugada8.map
# example de commande ./scriptIBD3.sh datas/brugada7chr22 datas/nvtsfdesirchr22.txt datas/brugada8chr22.map
